package com.hzz.dto.report;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.hzz.framework.dto.BaseDto;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.alibaba.fastjson.annotation.JSONField;

import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("旬报 DTO")
public class ReportTendayDto extends BaseDto {
    /**
     * id
     */
    String id;
    /**
     * 行政区域id
     */
    @NotNull(message = "areaId不能为空") @Size(max = 85, message = "areaId最大85字符")
    String areaId;
    /**
     * 行政区域名称
     */
    @NotNull(message = "areaName不能为空") @Size(max = 255, message = "areaName最大255字符")
    String areaName;
    /**
     * 行政区代码
     */
    @NotNull(message = "areaCode不能为空") @Size(max = 25, message = "areaCode最大25字符")
    String areaCode;
    /**
     * 填报日期
     */
    @JSONField(format = "yyyy-MM-dd")
    Date reportingDate;
    /**
     * 填报人id
     */
    Long reportingRiveruserId;
    /**
     * 填报人姓名
     */
    @Size(max = 55, message = "reportingRiveruserName最大55字符")
    String reportingRiveruserName;
    /**
     * 标题
     */
    @Size(max = 55, message = "title最大55字符")
    String title;
    /**
     * 发起时间
     */
    @Size(max = 15, message = "initiateDate最大15字符")
    String initiateDate;
    /**
     * 业务编码
     */
    @Size(max = 55, message = "bizCode最大55字符")
    String bizCode;
    /**
     * 业务名称
     */
    @NotNull(message = "bizName不能为空") @Size(max = 55, message = "bizName最大55字符")
    String bizName;
    /**
     * 河长类型
     */
    @NotNull(message = "riverSuperviseType不能为空") @Size(max = 55, message = "riverSuperviseType最大55字符")
    String riverSuperviseType;
    /**
     * 河长姓名
     */
    @NotNull(message = "riverSuperviseName不能为空") @Size(max = 55, message = "riverSuperviseName最大55字符")
    String riverSuperviseName;
    /**
     * 河长职务
     */
    @NotNull(message = "riverSuperviseJob不能为空") @Size(max = 55, message = "riverSuperviseJob最大55字符")
    String riverSuperviseJob;
    /**
     * 所负责河流、水库、湿地、渠道
     */
    @NotNull(message = "supervise不能为空") @Size(max = 55, message = "supervise最大55字符")
    String supervise;
    /**
     * 一河一策编制情况
     */
    @NotNull(message = "riverPolicyDrawup不能为空") @Size(max = 55, message = "riverPolicyDrawup最大55字符")
    String riverPolicyDrawup;
    /**
     * 一河一档建立情况
     */
    @NotNull(message = "riverFileBuild不能为空") @Size(max = 55, message = "riverFileBuild最大55字符")
    String riverFileBuild;
    /**
     * 附件
     */
    @NotNull(message = "file不能为空") @Size(max = 1255, message = "file最大1255字符")
    String file;
    /**
     * 发布状态
     */
    Integer state;
    /**
     * 备注
     */
    @Size(max = 255, message = "memo最大255字符")
    String memo;
    /**
     * 版本号
     */
    Integer version;
    /**
     * 排序
     */
    Integer orderNo;
    /**
     * 删除标记
     */
    Integer delFlag;
    /**
     * 建立者id
     */
    Long createId;
    /**
     * 创建时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
    /**
     * 更新时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;

}
